package com.parcial.vista;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.parcial.data.entidades.Alumno;
import com.parcial.data.entidades.Examen;
import com.parcial.data.entidades.Pregunta;
import com.parcial.data.fachadas.FachadaAlumno;
import com.parcial.data.fachadas.FachadaExamen;
import com.parcial.data.fachadas.FachadaPregunta;
import com.parcial.data.util.Clave;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		try {
			FachadaAlumno fachadaAlumno = FachadaAlumno.getFachadaAlumno();
			String usuario = request.getParameter("usuario");
			String password = request.getParameter("password");
			
			Clave c = new Clave("usuario", "contrasena");
			c.setValores(usuario, password);
			Alumno alumno = fachadaAlumno.obtenerPorClave(c);
			if (alumno != null) {
				FachadaPregunta fachadaPregunta = FachadaPregunta.getFachadaPregunta();
				HttpSession session = request.getSession(true);
				session.setAttribute("alumno", alumno);
				List<Pregunta> preguntas = fachadaPregunta.obtenerTodos();
				session.setAttribute("preguntas", preguntas);
				
				//El alumno se logueo correctamente
				Examen examen = new Examen();
				examen.setFecha(new Date());
				examen.setIdAlumno(alumno.getIdAlumno());
				int idExamen = (int)examen.getFecha().getTime(); 
				examen.setIdExamen(idExamen);
				
				session.setAttribute("examen", examen);
				
				FachadaExamen.getFachadaExamen().insertar(examen);
				
				response.sendRedirect("examen.jsp"); // logged-in page
				
			} else {
				response.sendRedirect("error.jsp"); // error page
			}
				
		} catch (Throwable ex) {
			System.out.println(ex);
		}
	}
}
